package com.atguigu.common.results;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/*
    响应类：
 */
@Data
public class R {
    private Integer code;
    private String message;
    private Map<String,Object> data = new HashMap<>();
    //通过枚举类对象创建R对象的方法
    public static R setResult(ResultCodeEnum codeEnum){
        R r = new R();
        r.setCode(codeEnum.getCode());
        r.setMessage(codeEnum.getMessage());
        return r;
    }
    //成功的R对象
    public static R success(){
        return setResult(ResultCodeEnum.SUCCESS);
    }
    //向data中添加k-v的成员方法
    public R data(String key , Object val){
        this.data.put(key,val);
        return this;
    }
    //失败的R对象
    public static R error(){
        return setResult(ResultCodeEnum.ERROR);
    }
    //提供修改code和message属性值的链式调用的方法
    public R code(Integer code){
        this.setCode(code);
        return this;
    }
    public R message(String message){
        this.setMessage(message);
        return this;
    }
    public R data(Map<String,Object> data){
        this.setData(data);
        return this;
    }
}
